﻿using System;
using System.Net;
using Hydra.Shell.Attributes;

namespace Hydra.Shell.Interfaces.EnvDTE
{
    [Guid("04A72314-32E9-48E2-9B87-A63603454F3E")]
    public interface DTE : IUnknown
    {
        string Name { get; }
        string FileName { get; }
        string Version { get; }
        object CommandBars { get; }
        EnvDTE.Windows Windows { get; }
        //EnvDTE.Events Events { get; }
        //EnvDTE.AddIns AddIns { get; }
        Window MainWindow { get; }
        Window ActiveWindow { get; }
        void Quit();
        //vsDisplay DisplayMode { get; set; }
        //EnvDTE.Solution Solution { get; }
        EnvDTE.Commands Commands { get; }
        //object GetObject(string Name);
        //Properties this{ get; }
        //EnvDTE.SelectedItems SelectedItems { get; }
        //string CommandLineArguments { get; }
        //Window OpenFile(string ViewKind, string FileName);
        //bool this{ get; }
        //EnvDTE.DTE DTE { get; }
        //int LocaleID { get; }
        //EnvDTE.WindowConfigurations WindowConfigurations { get; }
        //EnvDTE.Documents Documents { get; }
        //Document ActiveDocument { get; }
        //void ExecuteCommand(string CommandName, string CommandArgs = "");
        //EnvDTE.Globals Globals { get; }
        //EnvDTE.StatusBar StatusBar { get; }
        //string FullName { get; }
        //bool UserControl { get; set; }
        //EnvDTE.ObjectExtenders ObjectExtenders { get; }
        //EnvDTE.Find Find { get; }
        //vsIDEMode Mode { get; }
        //wizardResult LaunchWizard(string VSZFile, ref object[] ContextParams);
        //EnvDTE.ItemOperations ItemOperations { get; }
        //EnvDTE.UndoContext UndoContext { get; }
        //EnvDTE.Macros Macros { get; }
        //object ActiveSolutionProjects { get; }
        //EnvDTE.DTE MacrosIDE { get; }
        //string RegistryRoot { get; }
        //EnvDTE.DTE Application { get; }
        //EnvDTE.ContextAttributes ContextAttributes { get; }
        //EnvDTE.SourceControl SourceControl { get; }
        //bool SuppressUI { get; set; }
        //EnvDTE.Debugger Debugger { get; }
        //string SatelliteDllPath(string Path, string Name);
        //string Edition { get; }
    }
}
